package br.com.JZSolution.swing;

import java.awt.Color;
import java.awt.Component;

import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class TabelaProdutosVenda extends JTable {

	private int largura;
	
	public TabelaProdutosVenda(){
		super(new ModeloDaTabela());
		this.setAutoResizeMode(AUTO_RESIZE_LAST_COLUMN);
		//this.setDefaultRenderer(Object.class, new RenderizadorDeLabel());
		this.largura = ajustarColunas();
		this.setRowHeight(30);
	}
	
	@Override
	public ModeloDaTabela getModel() {
		return (ModeloDaTabela)super.getModel();
	}
	private int ajustarColunas(){
		  ModeloDaTabela mdt = (ModeloDaTabela)this.getModel();
		  TableColumn column = null;
		  int largura=0;
		  int width=0;
		  for(int i = 0; i < mdt.getColumnCount(); i++){
			  column = this.getColumnModel().getColumn(i);
			  switch (i){
			  	case 0: width = 50; break;
			  	case 1: width = 240; break;
			  	case 2: width = 200; break;
			  	case 3: width = 60; break;
			  	case 4: width = 72; break;
			  	case 5: width = 90; break;
			  	case 6: width = 90; break;
			  }
			  column.setPreferredWidth(width);
			  largura+=width;
		  }
		  return largura;
	}

	public int getLargura() {
		return largura;
	}
}



class RenderizadorDeLabel implements TableCellRenderer {
	
	public Component getTableCellRendererComponent(JTable table, Object obj,
			boolean isSelected, boolean hasFocus, int row, int column) {
		if (obj == null) return new JLabel();
		JLabel label = new  JLabel(obj.toString());
	/*	if(column == 0){
			 Transferencia transf = ((Transferencia)((ModeloDaTabela) (   (TransferTable)  table).getModel()).getLista().get(row));
			 int estado = transf.getEstado();
			 if(estado ==  Transferencia.ATIVA){
				if(transf.getTipo() == Transferencia.DOWN){
					label.setIcon(TransferTable.IMG_DOWN);
				}else {
					label.setIcon(TransferTable.IMG_UP);
				}
			}else if(estado ==  Transferencia.AGUARDANDO){
				label.setIcon(TransferTable.IMG_AGUARDANDO);
			}else if(estado ==  Transferencia.PAUSADA){
				label.setIcon(TransferTable.IMG_PAUSADA);
			}else if(estado ==  Transferencia.PARADA){
				label.setIcon(TransferTable.IMG_PARADA);
			}else if(estado ==  Transferencia.CANCELADA){
				label.setIcon(TransferTable.IMG_CANCELADA);
			}else if(estado ==  Transferencia.CONCLUIDA_SUCESSO){
				label.setIcon(TransferTable.IMG_CONCLUIDA_SUCESSO);
			}else if(estado ==  Transferencia.CONCLUIDA_FALHA){
				label.setIcon(TransferTable.IMG_CONCLUIDA_FALHA);
			}
		}else if(column == 3){
			label = ((Transferencia)((ModeloDaTabela) (   (TransferTable)  table).getModel()).getLista().get(row)).getFileProgress().getLabelConcluido();
		}else if (column == 5){
			label = ((Transferencia)((ModeloDaTabela) (   (TransferTable)  table).getModel()).getLista().get(row)).getLabelVel();
		}*/
		
		
		if(row % 2 ==0){
			label.setOpaque(true);
			label.setBackground(new Color(242,242,242));
		}else{
			label.setOpaque(true);
			label.setBackground(new Color(255,255,255));
		}
		if(isSelected){
			label.setOpaque(true);
			label.setBackground(new Color(57,105,138));
			label.setForeground(Color.WHITE);
		}else{
			label.setForeground(Color.BLACK);
		}
		
		return label;
	}
}
